package cn.stylefeng.guns.modular.business.frequency.finance.model.param;

import cn.stylefeng.guns.core.pojo.base.param.BaseParam;

import io.swagger.models.auth.In;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * 订单财务信息表
 *
 * @author yujie
 * @date 2023/05/09 17:17
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class FinanceParam extends BaseParam {

    /**
     * id
     */
    @NotNull(message = "id不能为空",groups = {edit.class})
    private Long id;

    /**
     * 订单id
     */
    @NotNull(message = "订单id不能为空",groups = {add.class,edit.class})
    private Long orderId;

    /**
     * 现付已付
     */
    @NotNull(message = "现付已付不能为空",groups = {add.class,edit.class})
    private BigDecimal spotHas;

    /**
     * 现付未付
     */
    @NotNull(message = "现付未付不能为空",groups = {add.class,edit.class})
    private BigDecimal spotUn;

    /**
     * 现付结算人
     */
    @NotNull(message = "现付结算人不能为空",groups = {add.class,edit.class})
    private String spotSettlementName;

    /**
     * 现付结算人电话
     */
    @NotNull(message = "现付结算人电话不能为空",groups = {add.class,edit.class})
    private String spotSettlementPhone;

    /**
     * 到付已付
     */
    @NotNull(message = "到付已付不能为空",groups = {add.class,edit.class})
    private BigDecimal deliveryHas;

    /**
     * 到付未付
     */
    @NotNull(message = "到付未付不能为空",groups = {add.class,edit.class})
    private BigDecimal deliveryUn;

    /**
     * 到付结算人
     */
    @NotNull(message = "到付结算人不能为空",groups = {add.class,edit.class})
    private String deliverySettlementName;

    /**
     * 到付结算人电话
     */
    @NotNull(message = "到付结算人电话不能为空",groups = {add.class,edit.class})
    private String deliverySettlementPhone;

    /**
     * 欠付已付
     */
    @NotNull(message = "欠付已付不能为空",groups = {add.class,edit.class})
    private BigDecimal backHas;

    /**
     * 欠付未付
     */
    @NotNull(message = "欠付未付不能为空",groups = {add.class,edit.class})
    private BigDecimal backUn;

    /**
     * 欠付结算人
     */
    @NotNull(message = "欠付结算人不能为空",groups = {add.class,edit.class})
    private String backSettlementName;

    /**
     * 欠付结算人电话
     */
    @NotNull(message = "欠付结算人电话不能为空",groups = {add.class,edit.class})
    private String backSettlementPhone;

    /**
     * 月结已付
     */
    @NotNull(message = "月结已付不能为空",groups = {add.class,edit.class})
    private BigDecimal slotHas;

    /**
     * 月结未付
     */
    @NotNull(message = "月结未付不能为空",groups = {add.class,edit.class})
    private BigDecimal slotUn;

    /**
     * 月结结算人
     */
    @NotNull(message = "月结结算人不能为空",groups = {add.class,edit.class})
    private String slotSettlementName;

    /**
     * 月结结算人电话
     */
    @NotNull(message = "月结结算人电话不能为空",groups = {add.class,edit.class})
    private String slotSettlementPhone;

    /**
     * 商务已付
     */
    @NotNull(message = "商务已付不能为空",groups = {add.class,edit.class})
    private BigDecimal kickbackHas;

    /**
     * 商务未付
     */
    @NotNull(message = "商务未付不能为空",groups = {add.class,edit.class})
    private BigDecimal kickbackUn;

    /**
     * 商务结算人
     */
    @NotNull(message = "商务结算人不能为空",groups = {add.class,edit.class})
    private String kickbackSettlementName;

    /**
     * 商务结算人电话
     */
    @NotNull(message = "商务结算人电话不能为空",groups = {add.class,edit.class})
    private String kickbackSettlementPhone;

    /**
     * 提车应付
     */
    @NotNull(message = "提车应付不能为空",groups = {add.class,edit.class})
    private BigDecimal pick;

    /**
     * 提车已付
     */
    @NotNull(message = "提车已付不能为空",groups = {add.class,edit.class})
    private BigDecimal pickHas;

    /**
     * 提车未付
     */
    @NotNull(message = "提车未付不能为空",groups = {add.class,edit.class})
    private BigDecimal pickUn;

    /**
     * 提车结算人
     */
    @NotNull(message = "提车结算人不能为空",groups = {add.class,edit.class})
    private String pickSettlementName;

    /**
     * 提车结算人电话
     */
    @NotNull(message = "提车结算人电话不能为空",groups = {add.class,edit.class})
    private String pickSettlementPhone;

    /**
     * 提车付款方式
     */
    @NotNull(message = "提车付款方式不能为空",groups = {add.class,edit.class})
    private Integer pickSettlementType;

    /**
     * 送车应付
     */
    @NotNull(message = "送车应付不能为空",groups = {add.class,edit.class})
    private BigDecimal take;

    /**
     * 送车已付
     */
    @NotNull(message = "送车已付不能为空",groups = {add.class,edit.class})
    private BigDecimal takeHas;

    /**
     * 送车未付
     */
    @NotNull(message = "送车未付不能为空",groups = {add.class,edit.class})
    private BigDecimal takeUn;

    /**
     * 送车结算人
     */
    @NotNull(message = "送车结算人不能为空",groups = {add.class,edit.class})
    private String takeSettlementName;

    /**
     * 送车结算人电话
     */
    @NotNull(message = "送车结算人电话不能为空",groups = {add.class,edit.class})
    private String takeSettlementPhone;

    /**
     * 送车付款方式
     */
    @NotNull(message = "送车付款方式不能为空",groups = {add.class,edit.class})
    private Integer takeSettlementType;

    /**
     * 应收结算状态
     */
    @NotNull(message = "应收结算状态不能为空",groups = {add.class,edit.class})
    private Integer collectionStatus;

    /**
     * 应付结算状态
     */
    @NotNull(message = "应付结算状态不能为空",groups = {add.class,edit.class})
    private Integer paymentStatus;

    /**
     * 是否有线上支付
     */
    @NotNull(message = "是否有线上支付不能为空",groups = {add.class,edit.class})
    private Integer hasOnlinePay;

    /**
     * 是否有转账凭证
     */
    @NotNull(message = "是否有转账凭证不能为空",groups = {add.class,edit.class})
    private Integer hasTransferVoucher;

    /**
     * 到付金额是否司机代收
     */
    @NotNull(message = "到付金额是否司机代收不能为空",groups = {add.class,edit.class})
    private Integer deliveryHasCollection;

    /**
     * 租户id
     */
    @NotNull(message = "租户id不能为空",groups = {add.class,edit.class})
    private Long tenantId;

}
